package Simulateur;

/**
 * 
 * @author Noyau
 * @version 1.0
 * @File Statistique.java
 * @since 2013-11-13
 *
 */

import java.util.Date;

import Domaine.Reseau;
import Domaine.Urgence;



public class Statistique 
{
	// attributs
	private Date _dateCreation;
	private StrategieAttente _strategieAttente;
	private Strategie _strategie;
	private float _dTP;
	private float _dMT;
	public Simulation Simulation;

	
	//M�thodes
	
	public Statistique(Simulation simulation, Reseau reseau) 
	{

		_strategieAttente= simulation.getStrategieAttente();
		_strategie= simulation.getStrategie ();
		_dTP= reseau.getVehiculeUrgence().getDistanceParcourue();
		_dateCreation = new Date();
		
		// Calcul du temps moyen de r�ponse
		//Trouver toutes les urgences, et additionner leur temps de traitement
		float tempsTotal=0;
		int nombreUrgence=0;
		
		for (Urgence urgence : reseau.getListeUrgence()) {
			tempsTotal+= urgence.getTempsTraitement();
			nombreUrgence ++;
			
		}
		
		// ajouter le temps de d�placement
		tempsTotal=tempsTotal+(_dTP/reseau.getVehiculeUrgence().getVitesse());
		// calculer la moyenne
		_dMT= tempsTotal/nombreUrgence;
		
		//si statistique cr��e par autre methode alors on doit l'ajouter � la liste 
		//sinon cr�er la m�thode ajouter statistique

		//if(this._listeStatistique.contains(statistique))
		//{
		//	return;
		//}
		//_listeStatistique.add(statistique);

		
	}

	public Date getDateCreation()
	{
		return this._dateCreation;
	}

	public void setDateCreation(Date aDateCreation) 
	{
		this._dateCreation = aDateCreation;
	}

	public StrategieAttente getStrategieAttente() 
	{
		return this._strategieAttente;
	}

	public void setStrategieAttente(StrategieAttente aStrategieAttente) 
	{
		this._strategieAttente = aStrategieAttente;
		
		
	}

	public Strategie getStrategie() 
	{
		return this._strategie;
	}

	public void setStrategie(Strategie aStrategie) 
	{
		this._strategie = aStrategie;
	
	}

	public float getDTP() 
	{
		return this._dTP;
	}

	public void setDTP(float aDTP) 
	{
		this._dTP = aDTP;
	}

	public float getDMT() 
	{
		return this._dMT;
	}

	public void setDMT(float aDMT)
	{
		this._dMT = aDMT;
	}
}